<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- mobile-app-design.qdoc -->
  <title>Optimizing Applications for Mobile Devices | Qt Creator Manual</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt Creator Manual</a></td><td >Optimizing Applications for Mobile Devices</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right"><a href="index.html">Qt Creator Manual 4.11.1</a></td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
  <link rel="prev" href="adding-plugins.html" />
  <link rel="next" href="creator-coding.html" />
<p class="naviNextPrevious headerNavi">
<a class="prevPage" href="adding-plugins.html">Adding Qt Designer Plugins</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="creator-coding.html">Coding</a>
</p><p/>
<div class="sidebar"><div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Optimizing Applications for Mobile Devices</h1>
<span class="subtitle"></span>
<!-- $$$creator-usability.html-description -->
<div class="descr"> <a name="details"></a>
<p>Before starting application development, analyze and define the requirements, scope, and functionality of the application to ensure efficient functionality and a smooth user experience. Design the application for a single purpose and analyze how it can best serve its users.</p>
<p>The following guidelines help you design and develop usable applications for mobile devices with varying characteristics, such as screen size and support for input methods:</p>
<ul>
<li>Know your users<p>Find out who will use the application, what they will use it for, and which mobile devices they have. Then design the application to fit a specific context of use.</p>
</li>
<li>Design for small screens<p>The screen size of mobile devices is significantly smaller than that available on desktop devices. Carefully consider what is the most relevant content to present on the application UI, as it might not be reasonable to try and fit as much content into the screen as you might have in a desktop application.</p>
</li>
<li>Design for multiple screen sizes<p>Relate the position and size of each control to the dimensions of the display. This enables the same set of information to be presented on the screen in all resolutions; higher resolution devices just display finer graphics.</p>
</li>
<li>Design for changing screen orientation<p>Some devices support screen rotation. On these devices, applications can be displayed in portrait or landscape orientation. Account for orientation and dynamically adjust the display when the screen is rotated.</p>
</li>
<li>Design intuitive ways of moving within applications<p>Mobile devices lack a mouse and full-size keyboard, so users must use the touch screen or five way navigation pad to move within applications. In addition, many users control the devices with one hand. To create an optimized user experience, allow users to access information with one click; do not make them scroll and type.</p>
</li>
<li>Design for limited input methods<p>Applications collect information from users on the task at hand. In addition to touch screen input, some devices contain physical keys such as a five way navigation pad, a keypad, and a keyboard. Users enter information by using screen controls, such as lists, check boxes, radio buttons, and text fields.</p>
</li>
<li>Keep response times short<p>Latency can cause delays in user interaction. If users perceive an application as being slow, they are likely to get frustrated and stop using it.</p>
</li>
<li>Save battery time<p>Mobile devices are not constantly connected to a power source but run on battery power. Optimize power consumption to keep the total consumption at an acceptable level and to prevent users from running out of battery time.</p>
</li>
<li>Consider network issues<p>If users do not have a flat-rate data plan or WLAN support, mobile network connections cost them money. Also, when users move around with the devices, the networks available for connections constantly change.</p>
</li>
<li>Remember the processing limits of the device<p>The memory available on devices is limited and you should use it carefully. Although all mobile devices have common functionality, each device is individual in terms of both the resources available and extra features. Therefore, you must consider the constraints of all the target devices.</p>
</li>
</ul>
</div>
<!-- @@@creator-usability.html -->
<p class="naviNextPrevious footerNavi">
<a class="prevPage" href="adding-plugins.html">Adding Qt Designer Plugins</a>
<span class="naviSeparator">  &#9702;  </span>
<a class="nextPage" href="creator-coding.html">Coding</a>
</p>
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2019 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
